Content Sharing and Instant Messaging

ABSTRACT

Content sharing and instant messaging are described. In an implementation, a first user interface is displayed at a first client that is configured to provide instant messaging with a second client having a second user interface. One or more content items are output in the first user interface to be controllable via both the first user interface and the second user interface.

BACKGROUND

Instant messaging is a popular communication tool that enables two ormore users to exchange messages via a network during aninstant-messaging session. When two users are online at the same time,for instance, instant messages may be exchanged in real time between thetwo users. Thus, the instant messages may be utilized to support a textconversation between the two users in a manner that mimics how the twousers would participate in a typical spoken conversation. However,traditional techniques that were provided to output content inconjunction with an instant-messaging session were disconnected anddisjointed, thereby decreasing overall satisfaction of the two userswith the instant-messaging session.

SUMMARY

Content sharing and instant messaging are described. In animplementation, a first user interface is displayed at a first clientthat is configured to provide instant messaging with a second clienthaving a second user interface. One or more content items are output inthe first user interface to be controllable via both the first userinterface and the second user interface.

In an implementation, one or more content items are displayed in a firstuser interface to be controllable via both the first user interface anda second user interface. The first and second user interfaces areconfigured to provide instant messaging, one with another. Status isdisplayed of a file transfer of another content item from the secondclient to the first client in the first user interface using arepresentation of the other content item.

In an implementation, one or more content items are displayed in a firstuser interface that is configured to provide instant messaging with asecond user interface. The first user interface has a content-sharingportion to display the one or more content items and a conversationportion to display the instant messaging. An option is displayed that isselectable to cause an increase in an amount of display area consumed bythe conversation portion and a decrease in an amount of display areaconsumed by the content-sharing portion, the content-sharing portion andthe conversation portion being concurrently displayed.

This Summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used as an aid in determining the scope of the claimed subjectmatter.

BRIEF DESCRIPTION OF THE DRAWINGS

The detailed description is described with reference to the accompanyingfigures. In the figures, the left-most digit(s) of a reference numberidentifies the figure in which the reference number first appears. Theuse of the same reference numbers in different instances in thedescription and the figures may indicate similar or identical items.

FIG. 1 is an illustration of an environment in an example implementationthat is operable to perform content sharing and instant messaging.

FIG. 2 is a flow diagram depicting a procedure in an exampleimplementation in which a display of content is shared simultaneously intwo user interfaces that are configured to perform instant messaging.

FIG. 3 is an illustration of an example system showing first and secondclients that are to communicate via instant messaging.

FIG. 4 is an illustration of an example system showing first and seconduser interfaces that are configured to communicate via instant messagingand initiate a content-sharing session.

FIG. 5 is an illustration of an example system showing the first andsecond user interfaces of FIG. 4 as outputting respectivecontent-sharing areas output in response to selection of an option inFIG. 4 to initiate a content-sharing session and respective conversationareas.

FIG. 6 is an illustration of an example system showing the first andsecond user interfaces of FIG. 5 in which a representation of a contentitem is output that indicates a status of a transfer of the respectivecontent item from the second client to the first client.

FIG. 7 is an illustration of an example system showing display of thecontent item transferred in FIG. 6.

FIG. 8 is an illustration of the first user interface of FIG. 7 in whichan amount of display area consumed by the conversation area in FIG. 7 isincreased and an amount of display area consumed by the content-sharingarea is reduced in response to selection of an option.

DETAILED DESCRIPTION

Example Environment

FIG. 1 is an illustration of an environment 100 in an exampleimplementation which is operable to implement content sharing andinstant messaging. The environment includes first and second clientsthat are illustrated as client 102 and client 104. Accordingly,reference may be made to the clients in multiple ways in the followingdiscussion, e.g., client 102, first client 102, and so on. Additionally,although two clients 102, 104 are shown, it should be readily apparentthat the environment may employ additional clients without departingfrom the spirit and scope thereof.

The clients 102, 104 are illustrated as being communicatively coupledvia a network 106. Accordingly, the clients 102, 104 may be configuredin a variety of ways for accessing the network 106. For example, one ormore of the clients 102, 104 may be configured as a computing device,such as a desktop computer, a mobile station, an entertainmentappliance, a set-top box communicatively coupled to a display device, awireless phone, a game console, and so forth. Thus, the clients 102, 104may range from full resource devices with substantial memory andprocessor resources (e.g., personal computers, game consoles) tolow-resource devices with limited memory and/or processing resources(e.g., traditional set-top boxes, hand-held game consoles). The clients102, 104 may also relate to a person and/or entity that operate theclients. In other words, one or more of the clients 102, 104 maydescribe logical clients that include users, software (e.g., executablemodules), and/or devices (e.g., a device with a processor and memoryconfigured to execute instructions).

Although the network 106 is illustrated as the Internet, the network mayassume a wide variety of configurations. For example, the network 106may include a wide area network (WAN), a local area network (LAN), awireless network, a public telephone network, an intranet, and so on.Further, although a single network 106 is shown, the network 106 may beconfigured to include multiple networks. For instance, client 102 may becommunicatively coupled via a peer-to-peer network with client 104 toperform instant messaging. In another instance, each of the clients 102,104 may also be communicatively coupled to the messaging provider 108(having a messaging manager module 110) over the Internet to communicateinstant messages. A variety of other instances are also contemplated.

Each of the plurality of clients 102, 104 is illustrated as including arespective one of a plurality of messaging modules 112, 114. Each of themessaging module 112, 114 is executable such that a respective client102, 104 may participate in an instant-messaging session with anotherone of the clients 102, 104.

Instant messaging provides a mechanism such that each of the clients102, 104, when participating in an instant-messaging session, may sendtext messages to each other. The instant messages are typicallycommunicated in real time, although delayed delivery may also beutilized, such as by logging the text messages when one of the clients102, 104 is unavailable, e.g., offline. Thus, instant messaging may bethought of as a combination of email and Internet chat in that instantmessaging supports message exchange and is designed for two-way “live”chats. Therefore, instant messaging may be utilized for synchronouscommunication. For instance, like a voice telephone call, aninstant-messaging session may be performed in real-time such that eachclient 102, 104 may respond to each other user as the instant messagesare received.

In an implementation, the messaging modules 112, 114 communicate witheach other through use of a messaging provider 108. Messaging provider108, for instance, may include a messaging manager module 110 that isrepresentative of functionality to route instant messages between themessaging modules 112, 114. For example, client 102 may cause themessaging module 112 to form an instant message for communication toclient 104. The messaging module 112 is executed to communicate theinstant message to the messaging provider 108, which then executes themessaging manager module 110 to route the instant message to the client104 over the network 106. The client 104 receives the instant messageand executes the messaging module 114 to display the instant message ina user interface.

In another implementation, when the clients 102, 104 are communicativelycoupled directly, one to another (e.g., via a peer-to-peer network), theinstant messages are communicated without utilizing the messagingprovider 108. A variety of other examples are also contemplated, such asmultiple messaging providers 108.

Each of the plurality of clients 102, 104 may have access to a widevariety of content in the environment 100 of FIG. 1. For example,third-party services (e.g., a website) may provide content to theclients 102, 104. Likewise, each of the clients 102, 104 may includerespective storage 116, 118 (e.g., memory or other computer-readablemedia) for one or more respective content items 120, 122.

To share this content, the clients 102, 104 are illustrated as includingrespective content-sharing modules 124, 126. The content-sharing modules124, 126 are representative of functionality to share content itemswithin a context of an instant-messaging session. In an implementation,this sharing is performed such that the content items 120, 122 may beshared electronically in a manner similar to a “coffee table”discussion. For instance, the sharing may be performed such that firstand second user interfaces output respectively by the first and secondcontent-sharing modules 124, 126 match, e.g., each party views the samecontent items at the same time and in the same order.

Additionally, in an implementation the content items are controllable byboth the first and second user interfaces. Traditionally, control of adisplay of content items, whether output in a single user interface ormultiple user interfaces, was limited to a single entity, such as a“leader” of an online meeting. Although leadership could be passed insome traditional instances by communication of a token, the control ofthe content was still limited to a single entity at any one time.

In an implementation, control of the content items 120, 122 in the userinterfaces is possible via both the first user interface and the seconduser interface at any one time. Therefore, the clients 102, 104 maycontrol content 120, 122 freely in the user interfaces without passing atoken. Further discussion of content sharing may be found in relation tothe following procedures.

Synchronous List of Ordered Media Sources

In an implementation, each of the clients 102, 104 may add additionalmedia sources to an existing session at any time. The content-sharingmodules 124, 126 may keep each source in synchronous order on eachdisplay involved in the content-sharing session. This benefits userinteraction by enabling use of common language phrases, such as “What isthe next photo about?”.

Real Time Transfer Queue Prioritization

During file transfer of multiple media sources a receiver can change thedownload order of his media with a single mouse click. Once selectedthat media source will be moved to the top of the transfer queue on theHost side to be transferred as the next media source.

Concurrency Handling.

Either party can change the media source and potentially both can changethe source at the same time. In an implementation, the content-sharingmodules 124, 126 converge the source on a most-recently selected (e.g.,last) source.

For example, when either client selects a media source in the UI asystem message (“a media source change request”) is sent to the otherclient which includes an incremented sequence number, an ack value, andthe identification number of the media source. For purposes of thefollowing discussion, the client that initiated the content-sharingsession is referred to as the “host” and the other client (or clients)that are to receive the content item is referred to as the “receiver”.

When a media source is selected by either client, a localacknowledgement (e.g., “ack”) value is updated from a sequence number ina media source change request previously received. When the receiverreceives this message from the host, the receiver will update the userinterface to display the media source referenced by the identificationnumber in the system message.

When the host receives a system message from the receiver, the hostcompares the acknowledgement value from the system message against thereceiver's own sequence number.

When the number is less than the receiver's local sequence number, thereceiver notifies the host that this message was sent before the lastmessage received, which indicates it is out of sequence. The message isthen ignored.

When the received acknowledgment value is greater than the localsequence number, the message is considered a valid request and the hostuser interface is updated with the media source identified. A variety ofother concurrency handling techniques are also contemplated withoutdeparting from the spirit and scope thereof.

Generally, any of the functions described herein can be implementedusing software, firmware (e.g., fixed logic circuitry), manualprocessing, or a combination of these implementations. The terms“module,” “functionality,” and “logic” as used herein generallyrepresent software, firmware, or a combination of software and firmware.In the case of a software implementation, the module, functionality, orlogic represents program code that performs specified tasks whenexecuted on a processor (e.g., CPU or CPUs). The program code can bestored in one or more computer readable memory devices, such as memory.The features of the instant messaging techniques described below areplatform-independent, meaning that the instant messaging techniques maybe implemented on a variety of commercial computing platforms having avariety of processors.

Example Procedures

The following discussion describes content sharing and instant messagingthat may be implemented utilizing the previously described systems anddevices. Aspects of each of the procedures may be implemented inhardware, firmware, or software, or a combination thereof. Theprocedures are shown as a set of blocks that specify operationsperformed by one or more devices and are not necessarily limited to theorders shown for performing the operations by the respective blocks. Inportions of the following discussion, reference will be made to theenvironment 100 of FIG. 1.

FIG. 2 is a flow diagram depicting a procedure 200 in an exampleimplementation in which content sharing and instant messaging techniquesare described. During the discussion of FIG. 2, reference will also bemade to the illustrations of FIGS. 3-8 that include example clients 102,104 of FIG. 1 and user interfaces. It should be readily apparent thatimplementation of the procedures is not limited to the exampleenvironment 100 of FIG. 1 or user interfaces and systems of FIGS. 3-8.Likewise, the example environment 100 of FIG. 1 and user interfaces arenot limited to performing the following procedures.

A first user interface is displayed at a first client that is configuredto provide instant message with a second client having a second userinterface (block 202). FIG. 3 is an illustration 300 in an exampleimplementation showing user interfaces that are output in relation to aninstant-messaging session between the first and second clients 102, 104of FIG. 2 during an instant-messaging session. A first client 104(1)(illustrated as “Adam”) and a second client 104 (illustrated as “Bob”)are engaged in an instant-messaging session. Text associated withinstant-messaging session is rendered for viewing in respective userinterfaces 302, 304 output by the respective clients 102, 104.

The text messages that are exchanged are transmitted between the clients102, 104 via a peer-to-peer network connection 306, although othernetwork connections are also contemplated as previously described inrelation to the network 106 of FIG. 1. Although FIG. 3 is illustratedand described in relation to a plurality having two clients 102, 104 asparticipating in an instant-messaging session, it should be recognizedthat the techniques described herein may also be applied to scenarios inwhich three or more clients participate in an instant-messaging session.

Reference will now be made again to FIG. 2, in which, one or morecontent items are output in the first user interface to be controllablevia both the first user interface and the second user interface (block204). For example, FIG. 4 depicts a system 400 showing the userinterfaces 302, 304 of FIG. 3 in greater detail. The user interfacesinclude respective text 402, 404 that match in respective conversationportions 404, 408.

The text 402, 404 describes a conversation performed during aninstant-messaging session in which Adam and Bob discuss a vacation takenby Adam. In the conversation, Adam offers to show Bob pictures takenduring the vacation. Accordingly, Adam initiates a content-sharingsession through a drop-down menu 410 included in a toolbar of the userinterface 302. The drop-down menu 410 includes a portion 412 that isselectable to initiate a content-sharing session. Although a drop-downmenu 410 is shown, a variety of other techniques may also be employed toinitiate the instant-messaging session, such as a key combination and soon.

A content-sharing session is initiated such that a display of contentitems in the first and second interfaces matches, one with another(block 206). FIG. 5 depicts a system 500 in an example implementation inwhich a content-sharing session is initiated within a context of aninstant-messaging session.

The user interfaces 302, 304 include the conversation portions 406, 408of FIG. 4, but in this instance are reduced in size, e.g., consume alesser amount of display area. The user interfaces 302, 304 are alsoillustrated as including content-sharing portions 502, 504 that areconfigured to share content items. For example, the content-sharingportions 502, 504 of the user interfaces 302, 304 are illustrated asincluding a photo of a car 506, 508 and thumbnail representations ofphotos of a dog 510, 512 and a clock 514, 516. The display of thecontent items 502-516 is synchronized between the user interfaces 302,304 such that each client 102, 104 views a matching output of thecontent items 502-516. For example, the display of the content items502-516 may be arranged in a matching order, sized similarly withrespect to a corresponding display device, and so on.

Returning back to FIG. 2, a function is initiated involved control ofthe one or more content items (block 208). In an implementation, displayof content items 502-516 in the user interfaces 302, 304 of FIG. 5 iscontrollable by both the first and second clients 102, 104. For example,client 104 may select the thumbnail representation of dog 512 contentitem to be displayed, e.g., to replace the display of the car 504content item. This selection may cause the dog 512 to be displayed inthe user interface 304 of client 104, as well as the dog 510 to bedisplayed in the user interface 302 of client 102.

A variety of other control functions are also contemplated, such as tocancel display of a particular content item, resize a display of acontent item, make a change (e.g., color, crop, visual and/or audioeffect) to a content item, and so on. The user interfaces 302, 304 isalso illustrated as including respective portions 518, 520 that areselectable to add additional content items to the content-sharingportions 502, 504. Although photos have been described, it should bereadily apparent that a wide variety of content items are contemplated,such as music, videos, manually-created images, and so on.

A conflict is resolved regarding a plurality of requests to initiate acontrol function (block 210). As previously described, in animplementation display of content in the user interface 302 iscontrollable via both the first user interface 302 and the second userinterface 304. Accordingly, instances may be encountered in whichcontrol functions initiated by both clients 102, 104 conflict, one withanother. For example, client 102 may interact with user interface 302and select the dog 510 content item to be output. Client 104, however,may interact with user interface 304 and select the clock 516 contentitem to be output. Accordingly, the content-sharing modules 124, 126 ofFIG. 1 may resolve the conflict, such as to output a most-recentlyselected content item as previously described in relation to FIG. 1.

A status is displayed of a file transfer of another content item fromthe second client to the first client in the first user interface usinga representation of the other content item (block 212). FIG. 6 is asystem 600 depicting the user interfaces 302, 304 of FIG. 5 astransferring the dog 512 content item from the second client 104 to thefirst client 102. To display the status in the illustrated example, thethumbnail representation of the dog 510 content item is “colored in” inproportion to an amount (e.g., percentage) of the dog 510 content itemthat is currently transferred.

When the content item is transferred, it may be displayed in “fullview”, an example of which is shown in a system 700 of FIG. 7. In thesystem 700, the dog 510, 512 content items replace the car 506, 508 inthe user interfaces 302, 304 in a synchronized manner such that theoutput matches. In other words, the dog 512 content item is notdisplayed in the user interface 304 of Bob until the content item istransferred to Adam and ready for display in the user interface 302. Avariety of other techniques are also contemplated for indicating astatus of a transfer using a representation of a content item, such asshading, intensity, resolution, manipulation of borders, and so on.

An option is displayed that is selected to cause a reduction in anamount of display area consumed by a conversation portion and anincrease in an amount of display area consumed by a content-sharingportion (block 214). For example, the user interface 302 of FIG. 7, andmore particularly the content-sharing portion 502, includes an option702 that is selectable (e.g., by a cursor-control device) to minimizethe content-sharing area 502 and expand the conversation area 406, anexample of which is shown in FIG. 8.

FIG. 8 depicts a system 800 in an example implementation in which thecontent-sharing area 502 is minimized and the conversation area 406expanded in response to selection of the option 702 in the userinterface 302 of FIG. 7. In this example, the car 506, dog 510 and clock514 content items are displayed as thumbnail representations. In animplementation, selection of the option 702 causes the matching (e.g.,synchronization) of the display of the content items between the userinterfaces 302, 304 to suspend. In another implementation, however, bothcontent-sharing areas 502, 504 of both user interfaces 302, 304 may beminimized in response to selection of the option through either thefirst or second user interfaces 302, 304.

The user interface 302 of FIG. 8 also includes another option 802 thatis selectable to remove the reduction in the amount of display areaconsumed by the conversation portion and remove the reduction in theamount of display area consumed by the content-display portion (block216). For example, selection of the other option 802 may cause the userinterface 302 to return to a state previously shown in FIG. 7. A varietyof other examples are also contemplated.

Conclusion

Although the invention has been described in language specific tostructural features and/or methodological acts, it is to be understoodthat the invention defined in the appended claims is not necessarilylimited to the specific features or acts described. Rather, the specificfeatures and acts are disclosed as exemplary forms of implementing theclaimed invention.

1. A method comprising: displaying a first user interface at a firstclient that is configured to provide instant messaging with a secondclient having a second user interface; and outputting one or morecontent items in the first user interface to be controllable via boththe first user interface and the second user interface.
 2. A method asdescribed in claim 1, wherein the second user interface provides anoutput of the one or more content items that matches the first userinterface.
 3. A method as described in claim 1, wherein the outputtingis performed such that a particular said content item that ismost-recently selected via the first and second user interfaces isoutput.
 4. A method as described in claim 3, wherein the most-recentselection is indicated through a respective acknowledgement value.
 5. Amethod as described in claim 1, wherein the outputting is performedresponsive to receipt at the first client of an indication of selectionof the one or more content items via the second user interface of thesecond client.
 6. A method as described in claim 5, further comprisingdisplaying in the first user interface a representation that theindication has been received.
 7. A method as described in claim 1,wherein the one or more content item in the first user interface arecontrollable via both the first user interface and the second userinterface such that the outputting of the one or more content items inthe first user interface is cancellable via the first user interface andthe second user interface.
 8. A method as described in claim 1, whereinthe one or more content item in the first user interface arecontrollable via both the first user interface and the second userinterface such that which of the one or more content items that are tobe output in both the first user interface and the second user interfaceis controllable via both the first and the second user interfaces.
 9. Amethod as described in claim 1, wherein the first and second userinterfaces include representations of a plurality of said content itemsthat are displayed in matching arrangement on both the first and seconduser interfaces.
 10. A method as described in claim 1, wherein during afile transfer of the one or more content items from the second client tothe first client, an order of the file transfer for a first said contentitem and a second said content item is changeable via the first userinterface.
 11. A method as described in claim 1, further comprisingdisplaying a status of a file transfer of the one or more content itemsfrom the second client to the first client in the first user interfaceusing a representation of the one or more content items.
 12. A method asdescribed in claim 11, wherein the representation is a thumbnail of theone or more content items.
 13. A method as described in claim 1, whereinthe one or more content items are photos.
 14. A method comprising:displaying one or more content items in a first user interface to becontrollable via both the first user interface and a second userinterface, the first and second user interfaces configured to provideinstant messaging, one with another; and displaying a status of a filetransfer of another content item from the second client to the firstclient in the first user interface using a representation of the othercontent item.
 15. A method as described in claim 14, wherein: theinstant messaging is performed via a peer-to-peer network; and the oneor more content items include at least one photo.
 16. A method asdescribed in claim 14, wherein the representation is changed an amountthat corresponds to an amount of the other content item that iscurrently transferred.
 17. A method comprising: displaying one or morecontent items in a first user interface that is configured to provideinstant messaging with a second user interface, the first user interfacehaving: a content-sharing portion to display the one or more contentitems; and a conversation portion to display the instant messaging; anddisplaying an option that is selectable to cause an increase in anamount of display area consumed by the conversation portion and adecrease in an amount of display area consumed by the content-sharingportion such that the content-sharing portion and the conversationportion are concurrently displayed.
 18. A method as described in claim17, wherein the one or more content items are displayed in the firstuser interface to be controllable via both the first user interface andthe second user interface.
 19. A method as described in claim 17,further comprising displaying a status of a file transfer of the one ormore content items from the second client to the first client in thefirst user interface using a representation of the one or more contentitems.
 20. A method as described in claim 17, further comprising afterthe option has been selected cause the increase in the amount of displayarea consumed by the conversation portion and the reduction in theamount of display area consumed by the content-sharing area, displayinganother option to remove the increase in the amount of display areaconsumed by the conversation area and to remove the decrease in theamount of display area consumed by the content-sharing area.